package 异常的处理.异常的捕获.trycatch捕获并处理;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-21
 * Time: 18:21
 */

//需求：读取配置文件，如果配置文件名字不是指定名字，抛出异常，调用者进行异常处理
public class Config {
    File file;
    public void openConfig(String filename) throws FileNotFoundException {
        if(!filename.equals("config.ini")) {
            throw new FileNotFoundException("配置文件名字不对");
        }
        //打开文件
    }

    public void readConfig() {

    }

    public static void main(String[] args) {
        Config config = new Config();
        try {
            config.openConfig("config.txt");
            System.out.println("文件打开成功");
        } catch (IOException e) {
            //异常的处理方式
            /**
             * System.out.println(e.getMessage());//只打印异常信息
             * System.out.println(e);//打印异常类型：异常信息
             */
            e.printStackTrace();
        }
        //一旦异常被捕获处理了，此处的代码会执行
        System.out.println("异常如果被处理了，这里的代码也可以执行");
    }
}

/*
关于异常的处理方式

异常的种类有很多, 我们要根据不同的业务场景来决定.
对于比较严重的问题(例如和算钱相关的场景), 应该让程序直接崩溃, 防止造成更严重的后果
对于不太严重的问题(大多数场景), 可以记录错误日志, 并通过监控报警程序及时通知程序猿
对于可能会恢复的问题(和网络相关的场景), 可以尝试进行重试.
在我们当前的代码中采取的是经过简化的第二种方式. 我们记录的错误日志是出现异常的方法调用信息, 能很
快速的让我们找到出现异常的位置. 以后在实际工作中我们会采取更完备的方式来记录异常信息
 */
